﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using FluentValidation;
using GestionePolveriLib.BL;
using FluentValidation.Results;

namespace GestionePolveriLib.Validations
{
    public class PartitaInfoValidator : AbstractValidator<PartitaInfo>
    {
        public PartitaInfoValidator()
        {
            //RuleFor(p => p.ColoreVerniciato).NotNull().WithMessage("Seleziona un colore !");
            //RuleFor(p => p.ColoreVerniciato.ID).GreaterThan(-1).WithMessage("Seleziona un colore !");

            Custom(p =>
            {
                return (CheckColoreVerniciato(p)
                        ? null
                        : new ValidationFailure("ID", "Seleziona un colore o verifica che sia presente almeno un colore generico in Anagrafica Colori !")
                        );
            });
        }

        private bool CheckColoreVerniciato(PartitaInfo partitaInfo)
        {
            bool retValue = false;

            if (partitaInfo.ColoreVerniciato != null)
            {
                if (partitaInfo.ColoreVerniciato.ID > -1)
                {
                    retValue = true;
                }
            }

            return retValue;
        }
    }
}
